package com.wy._02io.enums;

// 文件格式枚举，比如 jpg，png，等等  未分类分类
//某一个类型有后缀名称 和 魔数类型，多个图片类型并不分别对应多个魔数类型
// 如果 文档内容为空的时候 可能 得到的魔数不一样
public enum FileTypeEnum {
    // 图片类型
    JPG("jpg|jpeg", "FFD8"),
    PNG("png", "89504E470D0A1A0A"),
    GIF("gif", "474946383761|474946383961"),
    BMP("bmp", "424D"),
    TIFF("tif|tiff", "49492A00|4D4D002A"),

    // 音频
    MP3("mp3", "494433"),  // 可能有错误

    // 视频
    AVI("avi", "41564920"),
    MP4("mp4",""),
    MPEG("mpg|mpeg", "000001B3|000001BA"),  //ftyp，后跟特定的文件类型标签，例如mp42或isom 这个是干啥的，加上

    // 文本类型 魔数解码之后就是直接的文档内容。txt的魔数类型。
    TXT("", ""),
    HTML("html", "3C21444F"),
    XML("xml", "3C3F786D"),
    XLS("xls", "D0CF11E0A1B11AE1"),
    XLSX("xlsx", "504B0304|504B0506"),
    DOC("doc", "D0CF11E0A1B11AE1"),
    DOCX("docx", "504B"),
    PPT("ppt", "D0CF11E0A1B11AE1"),
    PPTX("pptx", "504B"),
    PDF("pdf", "25504446"),

    // 压缩包类型
    ZIP("zip", "504B0304"),
    GZIP("gzip", "1F8B08"),
    UN_KNOWN("unknown", "unknow");
    // 文件类型名称
    private final String name;
    // 文件类型 魔数 ，通过读取文件前8个自己的数据，得到文件的实际类型。
    private final String magicNumber;
    // 是否可以直接看后缀，文本 类型 就可以直接看后缀。有些文本类型可以直接 看后缀得出。
//    private final boolean look;
    // 单单看文件的魔数是无法全部看到文件的类型，如果不行的话就导入一个包，
//    private final boolean 调用包。;
    // 添加一个文件类型，比如 文本 图片 视频，音频。

    FileTypeEnum(String name, String magicNumber) {
        this.name = name;
        this.magicNumber = magicNumber;
    }

    public String getName() {
        return name;
    }

    public String getMagicNumber() {
        return magicNumber;
    }
}
